﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Oya.Data
{
    /// <summary>
    /// Une classe de base pour l'acces aux donnees
    /// </summary>
    public abstract class BaseDAC<T>
    {
        //location du stockage XML
      protected  string xmlStore = Oya.Data.OyaConfig.XmlStore;
        #region TODO - Pas convaincu pour l heritage
        /*Je veux forcer les classes d acces donnees a implementer SaveData et LoadData mais la realite petre que les parametres seront different... a voir
         */
        /// <summary>
        /// Sauve les donnees
        /// </summary>
        /// <param name="t"></param>
        /// <returns></returns>
        public abstract bool SaveData(T t);

        public abstract T LoadData(string id);

        #endregion
        /// <summary>
        /// Cette classe retournerait le chemin pour sauver les fichiers.
        /// </summary>
        /// <param name="tag">libele du contenu a sauver. ex. "gameData,monster"</param>
        /// <param name="name">nom a donner a la sauvegarde</param>
        /// <returns></returns>
        protected virtual string createFilePath(string tag,string name)
        { return Path.Combine(xmlStore, tag, name); }


    }
}
